Skip to content

refactor(schema): remove type fields from resource schemas and rename credential discriminator#709

Merged
jesseturner21 merged 1 commit intomainfrom
refactor/remove-type-fields-rename-credential-discriminator
Mar 27, 2026
Merged

refactor(schema): remove type fields from resource schemas and rename credential discriminator#709
jesseturner21 merged 1 commit intomainfrom
refactor/remove-type-fields-rename-credential-discriminator

Conversation

@jesseturner21
Copy link
Copy Markdown
Contributor

Description

Remove redundant type fields from all resource schemas and rename the credential discriminator from type to authorizerType.

Changes:

  • Remove type field from agent (AgentEnvSpecSchema), memory, evaluator, and online-eval-config schemas
  • Rename credential discriminated union key from type to authorizerType (values ApiKeyCredentialProvider and OAuthCredentialProvider unchanged)
  • Remove modelProvider from agent env schema (AgentEnvSpecSchema)
  • Update all consuming source files, primitives, operations, TUI components, and CLI commands
  • Regenerate agentcore.schema.v1.json
  • Update LLM-compacted schema documentation

Companion PR: aws/agentcore-l3-cdk-constructs (same branch name)

Related Issue

N/A — schema cleanup task

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

TypeScript compilation: Both packages compile clean (tsc --noEmit passes)

Unit tests (CLI): 217/218 test files pass, 3112/3114 tests pass

  • 2 pre-existing PTY test failures (unrelated to this change)

Unit tests (CDK): 11/11 test files pass, 132/132 tests pass

JSON schema regeneration: node scripts/generate-schema.mjs succeeds, output committed

Specific test evidence:

  • Schema validation tests updated and passing for all resource types

  • Credential discriminated union tests verify authorizerType as discriminator

  • OnlineEvalConfigSchema tests pass without type field

  • AgentEnvSpecSchema tests pass without type and modelProvider

  • MemorySchema tests pass without type field

  • All credential operation tests (credential-ops, resolve-credential-strategy, pre-deploy-identity, fetch-gateway-token) pass with authorizerType

  • ResourceGraph component tests pass with updated credential rendering

  • Import/merge tests pass with updated schemas

  • Status command tests pass with authorizerType references

  • I ran npm run test:unit and npm run test:integ

  • I ran npm run typecheck

  • I ran npm run lint

  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

… credential discriminator

- Remove `type` field from agent, memory, evaluator, online-eval-config schemas
- Rename credential discriminator from `type` to `authorizerType`
- Remove `modelProvider` from agent env schema
- Update all source files, tests, and generated JSON schema
- Regenerate agentcore.schema.v1.json

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jesseturner21 jesseturner21 requested a review from a team March 27, 2026 20:35
@github-actions github-actions Bot added the size/m PR size: M label Mar 27, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.3.0-preview.9.0.tgz

How to install

npm install https://github.com/aws/agentcore-cli/releases/download/pr-709-tarball/aws-agentcore-0.3.0-preview.9.0.tgz

@github-actions
Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 46.06% 6568 / 14258
🔵 Statements 45.63% 6980 / 15296
🔵 Functions 44.8% 1182 / 2638
🔵 Branches 46.15% 4341 / 9405
Generated in workflow #1464 for commit 52b1239 by the Vitest Coverage Report Action

@jesseturner21
Copy link
Copy Markdown
Contributor Author

E2E Test Evidence

Successfully tested end-to-end with the modified CLI and CDK packages:

1. Project creation

agentcore create --name TestRmType --framework Strands --defaults --skip-git --skip-python-setup

✅ Project created with no type fields in agentcore.json

2. Validation

agentcore validate

✅ Config validates successfully

3. Add credential (authorizerType flow)

agentcore add credential --name TestApiKey --type api-key --api-key fake-key-12345 --json

✅ Credential saved with authorizerType: "ApiKeyCredentialProvider" (not type)

4. Deploy

agentcore deploy --yes --json

✅ Deployed successfully to us-west-2:

  • Stack: AgentCore-TestRmType-default
  • Runtime ARN: arn:aws:bedrock-agentcore:us-west-2:325335451438:runtime/TestRmType_TestRmType-rthjn281qL

5. Invoke

agentcore invoke --agent TestRmType --prompt "Say hello" --json

✅ Agent responded: "Hello! 👋 How can I help you today?"

6. Status

agentcore status --json

✅ Agent shows deploymentState: "deployed", detail: "READY"

Unit test summary

  • CLI: 217/218 files pass, 3112/3114 tests pass (2 pre-existing PTY failures)
  • CDK: 11/11 files pass, 132/132 tests pass
  • TypeScript: Both packages compile clean

@jesseturner21 jesseturner21 changed the title refactor(schema): remove type fields and rename credential discriminator refactor(schema): remove type fields from resource schemas and rename credential discriminator Mar 27, 2026
Comment thread schemas/agentcore.schema.v1.json
Copy link
Copy Markdown
Contributor

@notgitika notgitika left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some redundant tests + dead code but we can fix those in a followup.
There is just a question around why the regex pattern was changed here and if this would break something otherwise LGTM

Comment thread schemas/agentcore.schema.v1.json
@jesseturner21 jesseturner21 merged commit 48dadfd into main Mar 27, 2026
22 of 25 checks passed
@jesseturner21 jesseturner21 deleted the refactor/remove-type-fields-rename-credential-discriminator branch March 27, 2026 21:55
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Mar 27, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Mar 27, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Mar 27, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Mar 28, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Mar 28, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Mar 28, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit to aidandaly24/agentcore-cli that referenced this pull request Apr 8, 2026
- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in aws#709)
- Remove `modelProvider` from agent spec (removed in aws#709)
- Rename credential `type` to `authorizerType` (renamed in aws#709)
- Rename `add identity` to `add credential` everywhere (aws#705)
- Replace `--force` with `-y/--yes` on remove commands (aws#705)
- Replace `--plan` with `--dry-run` on deploy command (aws#705)
- Update snapshot for src/assets/README.md change
aidandaly24 added a commit that referenced this pull request Apr 9, 2026
)

* docs: fix 30 documentation inaccuracies found by source code audit

- configuration.md: fix networkMode PRIVATE→VPC, remove stale mcp.json
  section, add 7 missing AgentEnvSpec fields, add Node.js runtimes,
  fix gateway name max 63→100, list all 6 targetType values, fix memory
  strategies wording, fix deployed-state.json path, add missing project
  fields, fix CUSTOM_JWT field requirements, add customClaims field
- README.md: add CrewAI framework, update all 4 default model IDs,
  add missing command sections
- frameworks.md: add CrewAI with model providers, add protocol
  compatibility matrix (HTTP/MCP/A2A)
- commands.md: fix agent name max 64→48 chars, add fetch access section,
  add policy-engine/policy to status --type, remove ghost
  --tool-filter-description flag, fix model ID date
- gateway.md: add enableSemanticSearch/exceptionLevel config options,
  fix mcp.json→agentcore.json, remove api-key from MCP Server auth
- transaction_search.md: fix traces command syntax
- container-builds.md: remove nonexistent --progress flag
- evals.md: fix model date 20250929→20250514
- local-development.md: fix mcp.json→agentcore.json
- AGENTS.md: remove AutoGen, remove stale mcp.json reference
- src/assets/README.md: add CrewAI to template list
- src/assets/agents/AGENTS.md: remove AutoGen

Constraint: All fixes verified against Zod schemas and CLI runtime
Constraint: CLI --help text bugs left for separate agent
Confidence: high
Scope-risk: narrow

* style: run prettier on documentation files

* test: update asset snapshots for edited README.md and AGENTS.md

* ci: trigger build workflow

* docs: update docs for upstream schema refactor and naming unification

- Remove `type` fields from agent, memory, evaluator, online-eval-config
  examples and field tables (removed in #709)
- Remove `modelProvider` from agent spec (removed in #709)
- Rename credential `type` to `authorizerType` (renamed in #709)
- Rename `add identity` to `add credential` everywhere (#705)
- Replace `--force` with `-y/--yes` on remove commands (#705)
- Replace `--plan` with `--dry-run` on deploy command (#705)
- Update snapshot for src/assets/README.md change

* docs: fix stale agents reference in gateway example

Update `"agents": [...]` to `"runtimes": [...]` in the gateway
configuration example to match the schema rename in #706.

* docs: rename --agent flags to --runtime and remove stale type fields

Update all documentation to reflect upstream renames:
- --agent → --runtime, -a → -r across all commands
- --agent-arn → --runtime-arn, --agent-runtime-id → --runtime-id
- Remove stale "type" fields from JSON examples in evals.md,
  memory.md, and container-builds.md

Constraint: --agent-id, --agent-alias-id, --agent-client-id,
  --agent-client-secret are unchanged (different semantics)
Constraint: --type agent filter value in status/fetch stays as-is
Confidence: high
Scope-risk: narrow

* docs: add missing flags and fix --lines → --limit

- Add -H, --header flag to dev and invoke commands
- Add --bearer-token flag to invoke command
- Fix --lines → --limit in evals.md logs evals section

Confidence: high
Scope-risk: narrow

* docs: fix stale gateway flags and add missing CLI flags

- Rename --agent-client-id → --client-id, --agent-client-secret →
  --client-secret in gateway docs (naming unification #705)
- Add missing flags to add agent: --authorizer-type, --discovery-url,
  --allowed-audience, --allowed-clients, --allowed-scopes,
  --custom-claims, --client-id, --client-secret, --idle-timeout,
  --max-lifetime
- Add missing flags to create: --idle-timeout, --max-lifetime
- Add missing flags to add gateway: --runtimes, --custom-claims,
  --policy-engine, --policy-engine-mode
- Fix --exception-level values: NONE/ALL (was undocumented)

Confidence: high
Scope-risk: narrow

* docs: fix --exception-level valid values to NONE/DEBUG

The CLI help text says ALL but the schema (GatewayExceptionLevelSchema)
defines the valid values as NONE and DEBUG. Aligns commands.md with
gateway.md and the Zod schema.

* docs: fix stale fields and add flags from upstream v0.5–v0.7

- Remove stale "type": "AgentCoreMemory" from memory streaming example
- Add memory streaming flags: --delivery-type, --data-stream-arn,
  --stream-content-level, --stream-delivery-resources
- Add --exec to dev command flag table (Container agents)
- Add --skip-install to create command flag table
- Add --identity-name to fetch access flag table
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/m PR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants